#include "link_list.h"

LinkNode* InitLinkList()
{
    LinkNode* head, *node;
    head = (LinkNode*)malloc(sizeof(LinkNode));
    node = head;
    node->num = 1;
    node->next = NULL;
    // for (int i = 1; i < 5; i++)
    // {
    //     LinkNode* temp = (LinkNode*)malloc(sizeof(LinkNode));
    //     temp->num = i;
    //     temp->next = NULL;
    //     node->next = temp;
    //     node = node->next;

    // }

    return head;
}

LinkNode* InsertFromPosition(LinkNode* ln, int pos, int data)
{
    LinkNode* temp = ln;
    for (int i = 1; i < pos; i++)
    {
        temp = temp->next;
        if (NULL == temp)
        {
            printf("You insert a wrong position!");
            return ln;
        }
        
    }

    LinkNode* insert;
    insert = (LinkNode*)malloc(sizeof(LinkNode));
    insert->num = data;
    insert->next = temp->next;
    temp->next = insert;

    return ln;
}

LinkNode* DeleteFromPosition(LinkNode* ln, int pos)
{
    LinkNode* temp = ln;
    for (int i = 1; i < pos; i++)
    {
        temp = temp->next;
        if (NULL == temp)
        {
            printf("You delete a wrong position!");
        }
    }

    temp->next = temp->next->next;

    return ln;
}

void DisplayLinkList(LinkNode* ln)
{
    LinkNode* temp = ln;
    while (temp->next)
    {
        temp = temp->next;
        printf("%d\t", temp->num);
    }
    printf("\n");
}

LinkNode* ReleaseLinkList(LinkNode* ln)
{
    LinkNode* temp = ln;
    

    return ln;
}
